import pandas as pd
import matplotlib.pyplot as plt

# 设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像时负号'-'显示为方块的问题

# 读取b1.xlsx文件
file_path = 'b1.xlsx'
df = pd.read_excel(file_path)

# 确保必要的列存在
required_columns = ['年份', 'LSR', '所有权']
missing_columns = [col for col in required_columns if col not in df.columns]
if missing_columns:
    raise ValueError(f"Excel文件中缺少以下列：{missing_columns}")

# 创建一个图和两个子图
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))

# 绘制散点图
# 使用不同的形状来表示不同的所有权属性
shapes = ['o', 's', '^', 'd']  # 'o'代表国有企业，'s'代表其他所有制
for i, ownership in enumerate(df['所有权'].unique()):
    ax1.scatter(df[df['所有权'] == ownership]['年份'], df[df['所有权'] == ownership]['LSR'], color='blue', label=f'{ownership}散点图', marker=shapes[i])

ax1.set_title('年份与LSR散点图')
ax1.set_xlabel('年份')
ax1.set_ylabel('LSR')
ax1.legend()

# 绘制折线图
# 使用不同的线型来区分不同的所有权属性
line_types = ['-', '--', '-.', ':']  # '-'代表国有企业，':'代表其他所有制
for i, ownership in enumerate(df['所有权'].unique()):
    ax2.plot(df[df['所有权'] == ownership]['年份'], df[df['所有权'] == ownership]['LSR'], color='red', label=f'{ownership}折线图', linestyle=line_types[i])

ax2.set_title('年份与LSR折线图')
ax2.set_xlabel('年份')
ax2.set_ylabel('LSR')
ax2.legend()

# 调整布局
plt.tight_layout()

# 显示图表
plt.show()
